使用了eclipse10年之后,我终于投向了IDEA
当然还有这里同样大家支持idea: 为什么 IDEA 比 Eclipse 更好?
最近,改用了idea,同事都说我投敌了。当然,这些同事都是和我一样的“老”程序员。不说毕业生,公司里的90后基本电脑都不会安装eclipse。
Eclipse 的三足鼎立时期
开始我写Java程序,用的并不是eclipse,而是用的一款叫做jbuilder的具。当时使用这个工具的时候,我已经觉得非常的好用,因为在此之前,我好像记得只是用个简单的文本工具来编辑。后来才发现,那些喜欢宣扬文本编辑器才能学会精通java的“高手”真的有点不敢恭维,至少于我,一个好的工具太重要了。
并没有过了多久,我发现一款叫做eclipse的工具,而且身边还越来越多,于是我决定试一试。尝试的最后,我发现实在是太好用了,他的界面变得更漂亮,而且里面的功能感觉就是为程序员量身定做的一样,最激动人心的功能是他竟然支持源源不断的插件,而且这个插件你还可以,自己来编写。
eclipse2001年由ibm创立,2003年就成立基金会,可惜国内嘛,在那个时代,总是要晚一些,而我更落后,直到07、08年才开始真正使用。《程序员》在06年还出了一起专题-Eclipse风暴。那时候,eclipse、jbuilder、netbean三足鼎立的局面,基本形成了。eclipse 称霸
再后来myeclipse出现了这个东西更加厉害,他集成了所有常用的插件,只要你一键安装完就啥也有了,基本上用它,你可以开发出java的任何东西。虽然他不是免费的。
慢慢的,jbuilder已经没什么人使用;而netbean不知道是不国内还是我圈子太窄,身边用的人总是很少,倒是在国外翻译的技术书里经常和eclipse一同出现。
重构的流行,让eclipse更受青睐。熊节在《重构》译本里推荐eclipse,后来我亲眼看了他使用eclipse纯键盘(基本不用鼠标)飞快的重构代码,有点傻了眼。后来背诵快捷键成了我的一项课题。
在接下来接近10年的日子里,就是他陪着我度过了漫长又有意思的编程生涯。虽然经常有人争论用简单版的eclipse好还是用丰富的myeclipse好,用丰富版的经常会嘲笑用简单的,什么都没有,什么插件都得重新来一遍,用简单版的又会鄙视使用丰富版的,什么插件都不会安装。我曾经见过有一个同事,使用的滚瓜烂熟,每一个插件在文件夹下叫什么名字应该删除哪些文件应该放在什么地方,应该增加哪些配置,怎么安装怎么卸载都倒背如流,随后我也慢慢学会了这招。再后来插件安装,已经不需要这么麻烦了,只需要在市场上搜索一下,点击一下安装就可以了。但是这些功能的改进并没有让他免除用户群慢慢转移的危机。
Intellij IDEA 横空出世
其实很久之前我就听说idea非常好用,说只要使用过后就不会在使用eclipse了。还说JetBrains这家公司怎么怎么懂得java程序员。但是,我实在找不到什么改变的理由,所以一直没有尝试使用。况且,我还需要开发c++、python,这些语言,eclipse都有完善相应的版本插件支持。
其实中间,我也不断地询问已经转向使用的同事,我问他究竟别/好像哪里?但是没有一个同事能够清晰的回答我这个问题。大部分的同事只是说就是很好用,你如果细细地问他好在哪儿,他却说不出来。还有一些同事确实列举了一些,他认为更为好用的功能,然后告诉我,然后我听完之后告诉他,其实这些功能eclipse也有。还有一个同事更搞笑,用了两个月了,说非常的好用,然后我叫他调大一些,字体让我看看,他竟然说不知道怎么调。这些遭遇实在让我想不出来什么要改变的理由。
但是上个星期出现了一个契机,就是公司主持了几个培训,不约而同的这几位培训,是都使用IDEA来培训,其实,工具的不同并没有太大的影响及对培训知识的吸收,但是我实在忍受不了我明明花了一个小时听培训,但是只听了55分钟的知识,剩余的5分钟关于工具的使用技巧也应该吸收过来。加上早就听说Robert C Martin也许从一个eclipse转向了这个工具,于是我决定我要改变一下了。
上周一是我改变的第一天,安装过程非常顺利,官网提供免费版和试用版。我当然毫不犹豫地选择的试用版,至于30天以后,咱们心照不宣,再说。安装过后当然是黑糊糊的一个界面,上面的所有按钮实在是非常的陌生,我使用的10年的那些快捷键发现全部不好使了,我甚至连怎么导入一个现有的工程都不会了。
我有点受不了了,我受不了的不是对新知识的学习与掌握,而是效率迅速降低20倍,甚至一百倍。没办法,一个一个问题百度吧。大概过去了半天到一天,神奇的事情发生了,我竟然不再想继续用eclipse了,甚至有点没有了IDEA,感觉更麻烦了。于是家接下来的四天,我越来越顺畅地开始编写我的代码了。
对于只是使用了五天的,我来说,我说的什么,其实都只是一个新手的废话,但是我还是喜欢总结一下。
Eclipse和idea,哪个更好?
有一些没有唯一正确答案的“永恒”的问题,例如,更好的是:Windows还是Linux,Java还是C#;谁更强大:Chuck Norris还是Van Damme。
其中的一个Holy War便是Java和IDE的选择:有许多争论的话题是讨论它们哪个有更多的插件、快捷键等等。它们之间有太多的不同而很难决定什么才是最重要的。
因此,人们都表示两个IDE在功能上都差不多,选择某一个则是个人喜好问题了。我认为这不仅仅是个人喜好的问题,有客观的原因能表明:Intellij IDEA 肯定比 Eclipse 更好。
我不会去大量比较两者细微不同,例如插件与快捷键之类的。因为有一系列的blog是关于这些的。我将会展示IDEA与Eclipse的一个最大的不同之处。通常IDEA和Eclipse的拥护者都不曾了解。前者已经习惯性的使用着它而不曾想象IDE缺少它会怎样,后者则没有使用它的习惯且难以想象有了它IDE能做得这么好。Eclipse的用户在把玩IDEA的时候通常都不会意识到这个不同点,因为他们习惯了以Eclipse模式工作。idea,个人觉得,确实比eclipse要更好,但是它的好处并不主要是多了哪些功能,从功能的多少数量上来说,他们俩其实是差不多的, IDEA,更优秀的关键点在于他在细节上更为人性化,做得更优秀而已。比如配置tomcat,我竟然不用百度,自己尝试点点,就成功跑起来了。感觉它真的懂我的心一样。开始使用的一些注意事项
如果你是刚开始编程,那就没什么关系,但是像我一样是用的eclipse很多年的老程序员,那么对快捷键一定是一个障碍,但是idea已经做了很人性化的设置,默认的快捷键可以一键改成eclipse的快捷键,但是我尝试了,确实改变了大部分,但并不是百分之百,所以我放弃了。还有就是对工程和模块要理解好,以前的eclipse都是做工程的概念并没有模块的概念,所以你可以把很多的工程都导入进去,但是IDEA完全不一样,他只能导入一个工程,如果你要在导入另外一个工程,你必须新开一个界面,当然你不用担心耗费内存的问题,已经。优化好了,但是在一个工程里面你可以导入多个模块,其实这个更适合我们平常的开发,因为maven 就是模块化的配置。tomcat的设置也非常人性化,注意的是,可以通过勾选tomcat实例,就可以一个tomcat多个工程使用了。当然,端口要不同,才能同时启动。三个很常用的设置按钮
Preperences
Project structure
Run configuration
常用的快捷键(mac)
我喜欢的特色功能
idea默认下面显示了teminal,很好用,现在我很少用mac自带的终端(虽然eclipse找找也有,但实在不好用)
右手边有个数据库连接,我现在也很少用Navicat和mysql workbench了
同样右边的maven也很好用,不像eclipse要右键,而且默认的还不齐全
JetBrains确实是伟大的公司,现在我弄js,也用了它的webstorm,弄python也用了他的pycharm而不是eclipse的pydev了。事实上这是依赖于对他们的定义的,Eclipse已将自己定位为一个抽象平台,用来使用插件构建任何工具,而IDEA则定位为一个“智能的Java IDE”,而且它正如此。作为纪念我就尝试着列绝一些Eclipse可能比IDEA更好的地方:Eclipse看上去更棒,所有大题小做的SWT以及本地控件都用的很值。Eclipse看上去很稳定的深思熟虑过的程序,它有着漂亮的字体以及图标。然而当第一眼看到IDEA是,它像是作噱头的玩具一样,有着不完全的图标以及笨拙的Swing界面。
Eclipse拥有更强的项目结构支持。在IDEA中,你的项目是有模块组成。在Eclipse中你拥有一个由工程组成的工作区,每个工程都能被单独打开或关闭,分组或隐藏。但是你真的需要么?
为Eclipse编写插件似乎很简单。
IDEA比Eclipse使用更多的系统资源。这其实也说得通--因为IDEA做得更多。
最后,Eclipse是免费的,然而IDEA Community版本已经够我用了。
再见,eclipse。
写在最后
如果我们选择Java IDE,那么Intellij IDEA肯定要比Eclipse好的。这不仅仅是个人喜好问题。从客观上看,IDEA更好。它是的你能够快捷地编写和修改代码。它给出恰当的名称提示,查找适合的方法。它不需要你特别地选择表达式便会猜测到你想要做的以及你想如何对它命名。IDEA预示着并给你提示。
又断断续续用了一周,发现没有想象中完美。偶尔有些卡,毕竟太多东西放内存。而且也出现过闪退。快捷键实在有些还记不住,有个快捷键要按四个键太难记了。有些个别功能感觉还是有点不如eclipse方便比如改字符集(也可能我不熟悉)。断点调试也还不习惯。也有很多功能真的要把eclipse彻底忘记,比如重构rename,idea默认竟然把同名的都rename掉。我重构个我自己写的类的get方法,它把map.get的get也rename掉了,真的有点无语。不过习惯就好,总比漏了一些rename自己慢慢改好。
如果你需要漂亮的图标,用来创建桌面程序的平台,C++IDE或者你用一个低配的笔记本工作,那么Eclipse可能对你来说是更好的选择。但是如果你是一个正儿八经的Java开发者,你需要更快更方便的工具帮你集中注意于解决问题而不是让你分心,IDEA则正是你所需要的。
大家目前用什么开发工具呢?